import requests
import json
from itertools import product  # 使用笛卡尔积代替 combinations，因为需要两个列表的组合

# 100个标签
tags = [
"明星",
"热血",
"励志",
"小说改编",
"都市",
"网络电影",
"独播",
"家庭",
"经典",
"亲情",
"美食",
"漫画改编",
"治愈",
"热点",
"婚姻",
"警匪",
"复仇",
"年代",
"口碑佳作",
"国漫",
"成长",
"竞技",
"甜宠",
"推理",
"生活",
"逆袭",
"穿越",
"爆款剧",
"硬汉",
"仙侠",
"谍战",
"热血",
"催泪",
"权谋",
"警察",
"芒果出品",
"兄弟情",
"烧脑",
"虐恋",
"恐惧",
"主旋律",
"探案",
"怀旧",
"文艺",
"欢喜冤家",
"民国",
"虐心",
"小人物",
"商战",
"户外",
"催泪",
"纪实",
"社会问题",
"现实题材",
"巨制",
"友谊",
"抗日",
"医疗",
"初恋",
"乡村",
"职场",
"校园",
"刺激",
"CCTV",
"革命",
"正能量",
"刑侦",
"宫廷",
"女强人",
"豆瓣高分",
"舞台",
"御姐",
"侦探",
"英雄",
"霸道总裁",
"人生",
"接地气",
"少女",
"网络剧",
"缉毒",
"三角恋",
"先婚后爱",
"女神",
"婆媳关系",
"腹黑",
"纯爱",
"春节",
"3D动漫",
"动物",
"双男主",
"学霸",
"情景喜剧",
"异世界",
"真实事件改编",
"电视",
"史诗",
"自制",
"考古",
"浪漫",
"神魔"
]

# 100个关键词
keywords = [
"亲子",
"青年",
"男生爱看",
"情侣",
"儿童",
"老年",
"妈妈",
"爸爸",
"女性",
"女生爱看",
"学龄前",
"高中生",
"中年",
"初中生",
"成年女性",
"奶奶",
"爷爷",
"成年男性",
"有子女家庭",
"男性",
"数代同堂",
"爷孙",
"婴幼儿",
"80后",
"00后",
"朋友同事合住",
"90后",
"70后",
"60后",
"适宜人群"
]

# 生成所有两两组合（100 × 100 = 10,000 种）
tag_keyword_pairs = list(product(tags, keywords))  # 笛卡尔积

# 接口URL
url = "http://106.53.146.53:7001/api/ccSmartStrategy/saveStrategyTracksForTag/invoke"

# 请求头
headers = {
    'User-Agent': 'Apifox/1.0.0 (https://apifox.com)',
    'Content-Type': 'application/json'
}

# 分批发送（每批 100 个组合）
batch_size = 100
for i in range(0, len(tag_keyword_pairs), batch_size):
    batch = tag_keyword_pairs[i:i + batch_size]  # 获取当前批次

    # 构造请求数据（格式：A,B，如 "古装,热血"）
    payload_data = [
        {
            "tagNames": f"{pair[0]},{pair[1]}",  # 格式：标签,关键词
            "tagCombin": "标签"
        }
        for pair in batch
    ]

    # 发送POST请求
    try:
        response = requests.post(
            url,
            headers=headers,
            data=json.dumps(payload_data)  # 转为JSON字符串
        )

        # 解析响应数据并提取 spanId
        response_json = response.json()  # 将响应转为 JSON 字典
        span_id = response_json.get("data", {}).get("spanId", "")  # 安全获取 spanId
        print(f"\"{span_id}\",")
        # 打印进度
        #(f"Batch {i // batch_size + 1}/{len(tag_keyword_pairs) // batch_size + 1}: "
              #f"Sent {len(batch)} pairs, Status: {response.status_code}, Response: {response.text}")
    except Exception as e:
        print(f"Batch {i // batch_size + 1} failed: {str(e)}")